<?php

declare(strict_types=1);

namespace app\model;

use app\model\Base;

/**
 * 管理员模型
 */
class SysUser extends Base
{
    protected $pk = 'userid';

    protected $schema = [
        "userid" => "int",  // 编号
        "roleid" => "int",  // 角色id
        "username" => "varchar",  // 用户名
        "password" => "varchar",  // 密码
        "salt" => "varchar",  // salt
        "nickname" => "varchar",  // 昵称
        "truename" => "varchar",  // 姓名
        "departmentid" => "int",  // 部门id
        "email" => "varchar",  // 邮箱
        "avatar" => "varchar",  // 头像
        "remark" => "varchar",  // 备注
        "status" => "tinyint",  // 状态1, 正常, 0 停用
        "per_time" => "datetime",  // 前次登录时间
        "per_ip" => "varchar",  // 前次登录IP
        "login_num" => "int",  // 登录次数
        "create_time" => "int",  // 创建时间
        "update_time" => "int",  // 更新时间
    ];

    public function sysRole()
    {
        return $this->belongsTo('SysRole', 'roleid')->bind(['rolename' => 'name']);
    }

    public static function queryList()
    {
        return self::field('userid,roleid,username,nickname,truename,email,status,per_time,per_ip,login_num,create_time')->with('sysRole')->select();
    }

    public function getUsernames($role_id = null)
    {
        if ($role_id == null) {
            return $this->column('id, username');
        } else {
            $data = $this->where('role_id', $role_id)->column('username');

            if ($data) {
                return implode(',', $data);
            } else {
                return null;
            }
        }
    }
}
